const axios = require('axios');

// 配置
const BASE_URL = 'http://localhost:3000/api';
const JWT_TOKEN = 'your_jwt_token_here'; // 替换为实际的JWT token

// 设置请求头
const headers = {
  'Authorization': `Bearer ${JWT_TOKEN}`,
  'Content-Type': 'application/json'
};

// 测试获取章节视频URL
async function testGetChapterVideo(shortsId, chapterId) {
  try {
    console.log(`🎬 获取短剧${shortsId}的章节${chapterId}视频URL...`);
    
    const response = await axios.get(
      `${BASE_URL}/shorts/chapter/video/${shortsId}/${chapterId}`,
      { headers }
    );
    
    console.log('✅ 获取成功:', JSON.stringify(response.data, null, 2));
    
    // 格式化输出
    const data = response.data;
    console.log(`\n📺 短剧ID: ${data.shortsId}`);
    console.log(`📖 章节ID: ${data.chapterId}`);
    console.log(`📝 章节标题: ${data.title}`);
    console.log(`🎥 视频URL: ${data.videoUrl || '暂无'}`);
    console.log(`🖼️ 封面: ${data.coverUrl || '暂无'}`);
    console.log(`⏱️ 时长: ${data.duration || 0}分钟`);
    console.log(`🔢 排序: ${data.sort}`);
    console.log(`💎 原积分: ${data.originalPoints}`);
    console.log(`💎 有效积分: ${data.effectivePoints}`);
    console.log(`👑 VIP用户: ${data.isVip ? '是' : '否'}`);
    console.log(`💰 免费: ${data.isFree ? '是' : '否'}`);
    console.log(`📋 订单ID: ${data.orderId || '无'}`);
    console.log(`💬 消息: ${data.message}`);
    
    return response.data;
  } catch (error) {
    console.error('❌ 获取失败:', error.response?.data || error.message);
    
    if (error.response?.status === 403) {
      console.log('💡 提示: 您需要先购买该章节才能观看');
    } else if (error.response?.status === 400) {
      console.log('💡 提示: 请检查短剧ID和章节ID是否正确');
    } else if (error.response?.status === 401) {
      console.log('💡 提示: 请检查JWT token是否有效');
    }
  }
}

// 测试免费章节
async function testFreeChapter() {
  console.log('\n🎯 测试免费章节...');
  // 这里需要替换为实际的免费章节ID（积分为0的章节）
  await testGetChapterVideo(1, 1);
}

// 测试付费章节（已购买）
async function testPaidChapterPurchased() {
  console.log('\n🎯 测试已购买的付费章节...');
  // 这里需要替换为实际已购买的章节ID
  await testGetChapterVideo(1, 2);
}

// 测试付费章节（未购买）
async function testPaidChapterNotPurchased() {
  console.log('\n🎯 测试未购买的付费章节...');
  // 这里需要替换为实际未购买的章节ID
  await testGetChapterVideo(1, 3);
}

// 测试不存在的短剧
async function testNonExistentShort() {
  console.log('\n🎯 测试不存在的短剧...');
  await testGetChapterVideo(99999, 1);
}

// 测试不存在的章节
async function testNonExistentChapter() {
  console.log('\n🎯 测试不存在的章节...');
  await testGetChapterVideo(1, 99999);
}

// 主测试函数
async function runTests() {
  console.log('🚀 开始测试章节视频URL接口...\n');
  
  if (JWT_TOKEN === 'your_jwt_token_here') {
    console.log('⚠️  请先设置有效的JWT token');
    console.log('   在脚本中修改 JWT_TOKEN 变量的值\n');
    return;
  }
  
  // 1. 测试免费章节
  await testFreeChapter();
  
  // 2. 测试已购买的付费章节
  await testPaidChapterPurchased();
  
  // 3. 测试未购买的付费章节
  await testPaidChapterNotPurchased();
  
  // 4. 测试错误情况
  await testNonExistentShort();
  await testNonExistentChapter();
  
  console.log('\n✨ 测试完成！');
}

// 运行测试
runTests().catch(console.error); 